[INFO] fetching crate casco 0.4.0...
[INFO] checking casco-0.4.0 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate casco 0.4.0 into /workspace/builds/worker-1-tc1/source
[INFO] validating manifest of crates.io crate casco 0.4.0 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate casco 0.4.0
[INFO] finished tweaking crates.io crate casco 0.4.0
[INFO] tweaked toml for crates.io crate casco 0.4.0 written to /workspace/builds/worker-1-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded logos v0.11.4
[INFO] [stderr]   Downloaded logos-derive v0.11.5
[INFO] [stderr]   Downloaded beef v0.4.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f4a99afd109c247bd5d9a8597769fb792d8cb5699a0adc1a12fa04788942df97
[INFO] running `Command { std: "docker" "start" "-a" "f4a99afd109c247bd5d9a8597769fb792d8cb5699a0adc1a12fa04788942df97", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f4a99afd109c247bd5d9a8597769fb792d8cb5699a0adc1a12fa04788942df97", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f4a99afd109c247bd5d9a8597769fb792d8cb5699a0adc1a12fa04788942df97", kill_on_drop: false }`
[INFO] [stdout] f4a99afd109c247bd5d9a8597769fb792d8cb5699a0adc1a12fa04788942df97
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fb8762f33bd24c0e1f77f5e8af8ebb79c3c166c9b5ecfdfba929cdba5e0a5cda
[INFO] running `Command { std: "docker" "start" "-a" "fb8762f33bd24c0e1f77f5e8af8ebb79c3c166c9b5ecfdfba929cdba5e0a5cda", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.78
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking unicode-ident v1.0.12
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]     Checking casco v0.4.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `crate::lexer`
[INFO] [stdout]    --> src/cascade.rs:297:16
[INFO] [stdout]     |
[INFO] [stdout] 297 |     use crate::lexer::lex;
[INFO] [stdout]     |                ^^^^^ could not find `lexer` in the crate root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `casco` (lib test) due to 2 previous errors
[INFO] running `Command { std: "docker" "inspect" "fb8762f33bd24c0e1f77f5e8af8ebb79c3c166c9b5ecfdfba929cdba5e0a5cda", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fb8762f33bd24c0e1f77f5e8af8ebb79c3c166c9b5ecfdfba929cdba5e0a5cda", kill_on_drop: false }`
[INFO] [stdout] fb8762f33bd24c0e1f77f5e8af8ebb79c3c166c9b5ecfdfba929cdba5e0a5cda
[INFO] checking casco-0.4.0 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate casco 0.4.0 into /workspace/builds/worker-1-tc2/source
[INFO] validating manifest of crates.io crate casco 0.4.0 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate casco 0.4.0
[INFO] finished tweaking crates.io crate casco 0.4.0
[INFO] tweaked toml for crates.io crate casco 0.4.0 written to /workspace/builds/worker-1-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f1201ba5fe16335df4006a5147b983eae7bfee74c1c40418378c93250ec7b5d7
[INFO] running `Command { std: "docker" "start" "-a" "f1201ba5fe16335df4006a5147b983eae7bfee74c1c40418378c93250ec7b5d7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f1201ba5fe16335df4006a5147b983eae7bfee74c1c40418378c93250ec7b5d7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f1201ba5fe16335df4006a5147b983eae7bfee74c1c40418378c93250ec7b5d7", kill_on_drop: false }`
[INFO] [stdout] f1201ba5fe16335df4006a5147b983eae7bfee74c1c40418378c93250ec7b5d7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] fe65be4fc9c60f81708b8d22a2e0c47d9f4943754281123ed0615e5668e168f1
[INFO] running `Command { std: "docker" "start" "-a" "fe65be4fc9c60f81708b8d22a2e0c47d9f4943754281123ed0615e5668e168f1", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.78
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]     Checking unicode-ident v1.0.12
[INFO] [stderr]    Compiling quote v1.0.35
[INFO] [stderr]    Compiling derivative v2.2.0
[INFO] [stderr]     Checking casco v0.4.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/cascade.rs:100:34
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 tokens = &tokens[position + 1..];
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/cascade.rs:145:25
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let value = &tokens[colon_position + 1..tokens.len() - 1];
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/cascade.rs:160:21
[INFO] [stdout]     |
[INFO] [stdout] 160 |             &tokens[position + 1..],
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/cascade.rs:200:34
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 tokens = &tokens[end + 1..];
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/literals.rs:16:44
[INFO] [stdout]    |
[INFO] [stdout] 16 |         Ok(value) => (Some(value), &tokens[1..]),
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/domain/literals.rs:55:38
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let unescaped = unescape(&result[1..result.len() - 1]);
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/literals.rs:56:31
[INFO] [stdout]    |
[INFO] [stdout] 56 |     (Some(unescaped), &tokens[1..])
[INFO] [stdout]    |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/names.rs:14:22
[INFO] [stdout]    |
[INFO] [stdout] 14 |     tokens = &tokens[1..];
[INFO] [stdout]    |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/names.rs:26:34
[INFO] [stdout]    |
[INFO] [stdout] 26 |                 tokens = &tokens[2..];
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:116:93
[INFO] [stdout]     |
[INFO] [stdout] 116 |                         Some(TokenTree::Punct(punct)) if punct.as_char() == char => &tokens[1..],
[INFO] [stdout]     |                                                                                             ^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 | tuple_impl!(A, B);
[INFO] [stdout]     | ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `tuple_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:116:93
[INFO] [stdout]     |
[INFO] [stdout] 116 |                         Some(TokenTree::Punct(punct)) if punct.as_char() == char => &tokens[1..],
[INFO] [stdout]     |                                                                                             ^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 | tuple_impl!(A, B, C);
[INFO] [stdout]     | -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `tuple_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:116:93
[INFO] [stdout]     |
[INFO] [stdout] 116 |                         Some(TokenTree::Punct(punct)) if punct.as_char() == char => &tokens[1..],
[INFO] [stdout]     |                                                                                             ^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 | tuple_impl!(A, B, C, D);
[INFO] [stdout]     | ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `tuple_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:116:93
[INFO] [stdout]     |
[INFO] [stdout] 116 |                         Some(TokenTree::Punct(punct)) if punct.as_char() == char => &tokens[1..],
[INFO] [stdout]     |                                                                                             ^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 | tuple_impl!(A, B, C, D, E);
[INFO] [stdout]     | -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `tuple_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:116:93
[INFO] [stdout]     |
[INFO] [stdout] 116 |                         Some(TokenTree::Punct(punct)) if punct.as_char() == char => &tokens[1..],
[INFO] [stdout]     |                                                                                             ^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 | tuple_impl!(A, B, C, D, E, F);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `tuple_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:169:93
[INFO] [stdout]     |
[INFO] [stdout] 169 |                         Some(TokenTree::Punct(punct)) if punct.as_char() == char => &tokens[1..],
[INFO] [stdout]     |                                                                                             ^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 | slice_impl!(6, a, b, c, d, e, f);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `slice_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:169:93
[INFO] [stdout]     |
[INFO] [stdout] 169 |                         Some(TokenTree::Punct(punct)) if punct.as_char() == char => &tokens[1..],
[INFO] [stdout]     |                                                                                             ^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 | slice_impl!(16, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p);
[INFO] [stdout]     | --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `slice_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:212:63
[INFO] [stdout]     |
[INFO] [stdout] 212 |                 "true" | "yes" | "on" => (Some(true), &tokens[1..]),
[INFO] [stdout]     |                                                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:213:65
[INFO] [stdout]     |
[INFO] [stdout] 213 |                 "false" | "no" | "off" => (Some(false), &tokens[1..]),
[INFO] [stdout]     |                                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/units.rs:23:27
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 suffix: s[suffix..].to_owned(),
[INFO] [stdout]    |                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/units.rs:52:30
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let tokens = &tokens[1..];
[INFO] [stdout]    |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/units.rs:60:25
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 &tokens[1..],
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/units.rs:68:67
[INFO] [stdout]    |
[INFO] [stdout] 68 |             let (unit, remaining) = unit_dim_impl::<S, T>(&tokens[1..]);
[INFO] [stdout]    |                                                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::lexer`
[INFO] [stdout]    --> src/cascade.rs:297:16
[INFO] [stdout]     |
[INFO] [stdout] 297 |     use crate::lexer::lex;
[INFO] [stdout]     |                ^^^^^ could not find `lexer` in the crate root
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/cascade.rs:100:34
[INFO] [stdout]     |
[INFO] [stdout] 100 |                 tokens = &tokens[position + 1..];
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/cascade.rs:145:25
[INFO] [stdout]     |
[INFO] [stdout] 145 |     let value = &tokens[colon_position + 1..tokens.len() - 1];
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/cascade.rs:160:21
[INFO] [stdout]     |
[INFO] [stdout] 160 |             &tokens[position + 1..],
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/cascade.rs:200:34
[INFO] [stdout]     |
[INFO] [stdout] 200 |                 tokens = &tokens[end + 1..];
[INFO] [stdout]     |                                  ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/literals.rs:16:44
[INFO] [stdout]    |
[INFO] [stdout] 16 |         Ok(value) => (Some(value), &tokens[1..]),
[INFO] [stdout]    |                                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/domain/literals.rs:55:38
[INFO] [stdout]    |
[INFO] [stdout] 55 |     let unescaped = unescape(&result[1..result.len() - 1]);
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/literals.rs:56:31
[INFO] [stdout]    |
[INFO] [stdout] 56 |     (Some(unescaped), &tokens[1..])
[INFO] [stdout]    |                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/names.rs:14:22
[INFO] [stdout]    |
[INFO] [stdout] 14 |     tokens = &tokens[1..];
[INFO] [stdout]    |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/names.rs:26:34
[INFO] [stdout]    |
[INFO] [stdout] 26 |                 tokens = &tokens[2..];
[INFO] [stdout]    |                                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:116:93
[INFO] [stdout]     |
[INFO] [stdout] 116 |                         Some(TokenTree::Punct(punct)) if punct.as_char() == char => &tokens[1..],
[INFO] [stdout]     |                                                                                             ^^^
[INFO] [stdout] ...
[INFO] [stdout] 149 | tuple_impl!(A, B);
[INFO] [stdout]     | ----------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `tuple_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:116:93
[INFO] [stdout]     |
[INFO] [stdout] 116 |                         Some(TokenTree::Punct(punct)) if punct.as_char() == char => &tokens[1..],
[INFO] [stdout]     |                                                                                             ^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 | tuple_impl!(A, B, C);
[INFO] [stdout]     | -------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `tuple_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:116:93
[INFO] [stdout]     |
[INFO] [stdout] 116 |                         Some(TokenTree::Punct(punct)) if punct.as_char() == char => &tokens[1..],
[INFO] [stdout]     |                                                                                             ^^^
[INFO] [stdout] ...
[INFO] [stdout] 151 | tuple_impl!(A, B, C, D);
[INFO] [stdout]     | ----------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `tuple_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:116:93
[INFO] [stdout]     |
[INFO] [stdout] 116 |                         Some(TokenTree::Punct(punct)) if punct.as_char() == char => &tokens[1..],
[INFO] [stdout]     |                                                                                             ^^^
[INFO] [stdout] ...
[INFO] [stdout] 152 | tuple_impl!(A, B, C, D, E);
[INFO] [stdout]     | -------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `tuple_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:116:93
[INFO] [stdout]     |
[INFO] [stdout] 116 |                         Some(TokenTree::Punct(punct)) if punct.as_char() == char => &tokens[1..],
[INFO] [stdout]     |                                                                                             ^^^
[INFO] [stdout] ...
[INFO] [stdout] 153 | tuple_impl!(A, B, C, D, E, F);
[INFO] [stdout]     | ----------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `tuple_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:169:93
[INFO] [stdout]     |
[INFO] [stdout] 169 |                         Some(TokenTree::Punct(punct)) if punct.as_char() == char => &tokens[1..],
[INFO] [stdout]     |                                                                                             ^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 | slice_impl!(6, a, b, c, d, e, f);
[INFO] [stdout]     | -------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `slice_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:169:93
[INFO] [stdout]     |
[INFO] [stdout] 169 |                         Some(TokenTree::Punct(punct)) if punct.as_char() == char => &tokens[1..],
[INFO] [stdout]     |                                                                                             ^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 | slice_impl!(16, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p);
[INFO] [stdout]     | --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `slice_impl` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:212:63
[INFO] [stdout]     |
[INFO] [stdout] 212 |                 "true" | "yes" | "on" => (Some(true), &tokens[1..]),
[INFO] [stdout]     |                                                               ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/domain/seqs.rs:213:65
[INFO] [stdout]     |
[INFO] [stdout] 213 |                 "false" | "no" | "off" => (Some(false), &tokens[1..]),
[INFO] [stdout]     |                                                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/units.rs:23:27
[INFO] [stdout]    |
[INFO] [stdout] 23 |                 suffix: s[suffix..].to_owned(),
[INFO] [stdout]    |                           ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/units.rs:52:30
[INFO] [stdout]    |
[INFO] [stdout] 52 |         let tokens = &tokens[1..];
[INFO] [stdout]    |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/units.rs:60:25
[INFO] [stdout]    |
[INFO] [stdout] 60 |                 &tokens[1..],
[INFO] [stdout]    |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]   --> src/domain/units.rs:68:67
[INFO] [stdout]    |
[INFO] [stdout] 68 |             let (unit, remaining) = unit_dim_impl::<S, T>(&tokens[1..]);
[INFO] [stdout]    |                                                                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `casco` (lib test) due to 2 previous errors; 22 warnings emitted
[INFO] [stdout] error: aborting due to 1 previous error; 22 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] For more information about this error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stdout] warning: 22 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "fe65be4fc9c60f81708b8d22a2e0c47d9f4943754281123ed0615e5668e168f1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fe65be4fc9c60f81708b8d22a2e0c47d9f4943754281123ed0615e5668e168f1", kill_on_drop: false }`
[INFO] [stdout] fe65be4fc9c60f81708b8d22a2e0c47d9f4943754281123ed0615e5668e168f1
